/*
 * Ejercicio realizado por Francisco Gonzalez-Armijo Riádigos
 * para la prueba de seleccion de http://www.nomasystems.es
 */

package es.kuassivi.android.cd.api2;

import org.json.JSONObject;

/**
 * Ejemplo de objeto REST y sus funcionalidades principales
 * 
 * @author kuassivi <a href="mailto:kuassivi@gmail.com">kuassivi@gmail.com</a>
 * @since 0.1
 */
public class ApiREST // extends Abstract implements Interfaces
{
	private static ApiREST instance;
	
	@SuppressWarnings("unused")
	private String toString;
	
	@SuppressWarnings("unused")
	private Object process;
	
	private JSONObject mjson;

	
	public ApiREST() 
	{
		this.process = new Object();
	}
	
	public ApiREST getInstance()
	{
		if(null != instance)
			return instance;
		
		return new ApiREST();
	}
	
//////////////////////////////////////////////////////////////////////////////////////////////////
//	
//	Esta clase permite usar el objeto ApiREST de las siguientes maneras
//	
//////////////////////////////////////////////////////////////////////////////////////////////////
//	
//	
//	String strUrl = "http://127.0.0.1:8080/get/id/1";
//	
//	
//	
//		ApiREST rest = new ApiREST(); 
//	o bien
//		ApiREST rest = ApiREST.getInstance();
//	
//	
//	
//	
//	Devuelve un String JSON
//	
//		rest.json(String strUrl); 
//	
//	
//	Devuelve todos los elementos, en un Array JSON
//	
//		rest.json(String strUrl).getAll(); 
//	
//	
//	Devuelve un elemento por su indice, en un objeto JSON
//	
//		rest.json(String strUrl).get(index); 
//	
//	
//	Devuelve un elemento segun un path (JsonPath), en un objeto JSON
//	
//		rest.json(String strUrl).get(path_expression); 
//	
//	
//	Transforma una peticion JSON en un string XML
//	
//		rest.json(String strUrl).getXML(); 
//	
//	
//	
//	
//	La funcrion callback se ejecuta usando el objeto JSON obtenido
//	
//		rest.json(String strUrl).setCallback(AbstractRESTCallback callback_function); 
//	
//	
//	El adaptador es seteado con el objeto JSON obtenido
//	
//		rest.json(String strUrl).setAdapter(Adapter adapter); 
//	
//	
//	
//	Borra un recurso via URL
//	
//		rest.jsonDelete(String strUrl); 
//	
//	
//	Envia por POST a una URL mediante (multipart/form-data)
//	
//		rest.jsonPost(String strUrl, ApiREST.form( ApiREST.data("id","value")
//												 , ApiREST.data("name","value")));
//	
//	
//	Inserta un contenido mediante URL
//	
//		rest.jsonPut(String strUrl, ApiREST.content(SomeJSON));
//	
//	...
//	
//////////////////////////////////////////////////////////////////////////////////////////////////

	
	public Boolean equals(JSONObject json)
	{
		return (json == mjson);
	}
	
	
	//public Boolean equals(JSONArray json);
	
	
	@Override public String toString()
	{
		return null;
	}
	
}
